home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / util / gnu / emacs_src_18_58.lha / emacs-18.58 / src / s-amiga.h < prev    next >
C/C++ Source or Header  |  1992-09-19  |  6KB  |  217 lines

  1. /* file for GNU Emacs running on AmigaDOS 2.04, SAS C compiler 5.10b
  2.    Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU Emacs.
  5.  
  6. GNU Emacs is distributed in the hope that it will be useful,
  7. but WITHOUT ANY WARRANTY.  No author or distributor
  8. accepts responsibility to anyone for the consequences of using it
  9. or for whether it serves any particular purpose or works at all,
  10. unless he says so in writing.  Refer to the GNU Emacs General Public
  11. License for full details.
  12.  
  13. Everyone is granted permission to copy, modify and redistribute
  14. GNU Emacs, but only under the conditions described in the
  15. GNU Emacs General Public License.   A copy of this license is
  16. supposed to have been given to you along with GNU Emacs so you
  17. can know your rights and responsibilities.  It should be in a
  18. file named COPYING.  Among other things, the copyright notice
  19. and this notice must be preserved on all copies.  */
  20.  
  21.  
  22. /*
  23.  *    Define symbols to identify the version of Unix this is.
  24.  *    Define all the symbols that apply correctly.
  25.  */
  26.  
  27. #ifndef AMIGA
  28. #define AMIGA
  29. #endif /* AMIGA */
  30.  
  31. /* SYSTEM_TYPE should indicate the kind of system you are using.
  32.  It sets the Lisp variable system-type.  */
  33.  
  34. #define SYSTEM_TYPE "amigados"
  35.  
  36. /* Define this if you want a faster redisplay. This saves a lot of CPU
  37.    time at the expense of more characters to be redrawn.
  38.    On a bitmapped display you win, with a serial line you probably lose.
  39. */
  40. #define FAST_DISPLAY
  41.  
  42. /* Define this to display eight bit characters. The actual characters
  43.    that are visible can be set in init_xdisp ().
  44. */
  45. #define EIGHT_BIT
  46.  
  47. /* nomultiplejobs should be defined if your system's shell
  48.  does not have "job control" (the ability to stop a program,
  49.  run some other program, then continue the first one).  */
  50.  
  51. #define NOMULTIPLEJOBS
  52.  
  53. /* Define this to include various patches that allow the Amiga to dump.
  54.    This *must* be defined on the Amiga!
  55. */
  56. #define AMIGA_DUMP
  57.  
  58. /* Do not use interrupt_input = 1 by default, because in 4.3
  59.    we can make noninterrupt input work properly.  */
  60.  
  61. /* #undef INTERRUPT_INPUT */    /* This file borrowed from s-bsd4-3.h */
  62.  
  63. /* First pty name is /dev/ptyp0.  */
  64.  
  65. /* #define FIRST_PTY_LETTER 'p' */
  66. /*
  67.  *    Define HAVE_TIMEVAL if the system supports the BSD style clock values.
  68.  *    Look in <sys/time.h> for a timeval structure.
  69.  */
  70.  
  71. #define HAVE_TIMEVAL
  72. #define USE_UTIME
  73.  
  74. /*
  75.  *    Define HAVE_SELECT if the system supports the `select' system call.
  76.  */
  77.  
  78. #define HAVE_SELECT
  79.  
  80. /*
  81.  *    Define HAVE_PTYS if the system supports pty devices.
  82.  */
  83.  
  84. /* #define HAVE_PTYS */
  85.  
  86. /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets.  */
  87.  
  88. /* #define HAVE_SOCKETS */
  89.  
  90. /* But we do have socket pairs for processes ... */
  91. #define SKTPAIR
  92.  
  93. /*
  94.  *    Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
  95.  *      The 4.2 opendir, etc., library functions.
  96.  */
  97.  
  98. /* #define NONSYSTEM_DIR_LIBRARY */
  99.  
  100. /* Define this symbol if your system has the functions bcopy, etc. */
  101.  
  102. #define BSTRING        /* #define'ed later on */
  103.  
  104. /* subprocesses should be defined if you want to
  105.    have code for asynchronous subprocesses
  106.    (as used in M-x compile and M-x shell).
  107.    This is generally OS dependent, and not supported
  108.    under most USG systems. */
  109.  
  110. #define subprocesses
  111.  
  112. #define DID_REMOTE        /* Use 0 length write to send eof */
  113.  
  114. /* If your system uses COFF (Common Object File Format) then define the
  115.    preprocessor symbol "COFF". */
  116.  
  117. /* #define COFF */
  118.  
  119. /* define MAIL_USE_FLOCK if the mailer uses flock
  120.    to interlock access to /usr/spool/mail/$USER.
  121.    The alternative is that a lock file named
  122.    /usr/spool/mail/$USER.lock.  */
  123.  
  124. /* #define MAIL_USE_FLOCK */
  125.  
  126. /* Define CLASH_DETECTION if you want lock files to be written
  127.    so that Emacs can tell instantly when you try to modify
  128.    a file that someone else has modified in his Emacs.  */
  129.  
  130. /* #define CLASH_DETECTION */
  131.  
  132. /* We use the Berkeley (and usg5.2.2) interface to nlist.  */
  133.  
  134. /* #define NLIST_STRUCT */
  135.  
  136. /* The file containing the kernel's symbol table is called /vmunix.  */
  137.  
  138. /* #define KERNEL_FILE "/vmunix" */
  139.  
  140. /* The symbol in the kernel where the load average is found
  141.    is named _avenrun.  */
  142.  
  143. /* #define LDAV_SYMBOL "_avenrun" */
  144.  
  145. /* We use our own malloc for 2 reasons:
  146.      - To check that the 6 (INTBITS - VALBITS) of allocated data are
  147.        the same as &pure[0].
  148.      - To release unused memory to the system (SAS's malloc keeps it
  149.        till you quit)
  150. */
  151.  
  152. #define SYMS_SYSTEM syms_of_amiga()
  153.  
  154. #define SYSTEM_MALLOC        /* But I have replaced the system malloc ... */
  155.  
  156. #define DEF_PURESIZE 130000        /* Leave space for extra code for Amiga */
  157. #ifdef emacs
  158. extern int puresize;
  159. #endif
  160. #define PURESIZE puresize    /* Puresize is variable ... */
  161.  
  162. #ifdef emacs
  163. /* Stdio must be included before redefining putchar */
  164. #include <stdio.h>
  165. extern char cbuffer[], *cbuffer_pos;
  166. #define PENDING_OUTPUT_COUNT(x) (cbuffer_pos - cbuffer)
  167. #endif
  168. /* We divert some calls to our routines */
  169. #define putchar(c) do { extern int noninteractive; \
  170.              if (noninteractive) putc (c, stdout); \
  171.              else emacs_putchar(c); } while(0)
  172. #define fwrite emacs_fwrite
  173. #define fflush emacs_fflush
  174. #define index strchr
  175. #define random rand
  176. #define srandom srand
  177. #define main emacs_main
  178. #define select emacs_select
  179.  
  180. /* We prefer to fake these functions (thus getting the inline versions) */
  181. #define    bzero(p, n)    memset(p, 0, n)
  182. #define    bcmp(x, y, n)    memcmp(x, y, n)
  183. #define    bcopy(s, d, n)    memmove(d, s, n)
  184. #ifdef emacs
  185. #include <string.h>
  186. #endif
  187.  
  188. #define fsync(x) 0        /* Emulate fsync ... */
  189.  
  190. #ifdef emacs
  191. #include <sys/wait.h>        /* process.c doesn't have appropriate #ifdef's */
  192. extern int amiga_process_stack_size;
  193. #endif
  194.  
  195. /* Here are some symbols for ymakefile's benefit */
  196.  
  197. #define    LIB_STANDARD        src:unix/src/unix.lib lib:lc.lib lib:amiga.lib
  198. #define    START_FILES        lib:c.o firstfile.o
  199. #define    C_DEBUG_SWITCH        -d
  200. #define    C_OPTIMIZE_SWITCH    -O
  201. #define    LD_SWITCH_SYSTEM    -g
  202. #define    C_SWITCH_SYSTEM        -cs -g -s -isrc:unix/include/
  203. #define CPP_SWITCH_SYSTEM       -Isrc:unix/include
  204. #define    S_SWITCH_MACHINE    /* Nothing! */
  205. #define UNEXEC amiga_dump.o
  206. #define OBJECTS_SYSTEM        amiga_clipboard.o amiga_tty.o amiga_serial.o \
  207.                 amiga_screen.o amiga_menu.o amiga_malloc.o \
  208.                                 amiga_rexx.o simplerexx.o amiga_term.o
  209.  
  210.  
  211. /* Amiga window-specific stuff */
  212.  
  213. #define VERS "1.26DG"
  214.  
  215. #define FALSE 0
  216. #define TRUE 1
  217.